home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / Utils.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  7.8 KB  |  520 lines

  1. import java.awt.Color;
  2. import java.awt.FontMetrics;
  3. import java.awt.Graphics;
  4. import java.awt.Image;
  5. import java.awt.Point;
  6. import java.awt.image.ColorModel;
  7. import java.awt.image.MemoryImageSource;
  8. import java.awt.image.PixelGrabber;
  9. import java.util.NoSuchElementException;
  10. import java.util.StringTokenizer;
  11.  
  12. class Utils {
  13.    public static int SkipSpaces(String var0, int var1) {
  14.       if (var0 != null && var0 != "" && var1 >= 0 && var1 < var0.length()) {
  15.          char var2 = var0.charAt(var1);
  16.  
  17.          while(var2 == ' ') {
  18.             ++var1;
  19.             if (var1 < var0.length()) {
  20.                var2 = var0.charAt(var1);
  21.             } else {
  22.                var2 = 0;
  23.             }
  24.          }
  25.       }
  26.  
  27.       return var1;
  28.    }
  29.  
  30.    public static boolean StateTest(int var0, int var1) {
  31.       return (var0 & var1) > 0;
  32.    }
  33.  
  34.    public static Point GetPtBetweenPts(int var0, Point var1, Point var2) {
  35.       Point var3 = new Point(0, 0);
  36.       long var4 = (long)Math.abs(var1.x - var2.x);
  37.       System.currentTimeMillis();
  38.       long var6 = (long)Math.abs(var1.y - var2.y);
  39.       double var8 = Math.sqrt((double)(var4 * var4 + var6 * var6));
  40.       if ((double)var0 <= var8) {
  41.          var3.x = (int)(((var8 - (double)var0) * (double)((long)var1.x) + (double)((long)var0 * (long)var2.x)) / var8);
  42.          var3.y = (int)(((var8 - (double)var0) * (double)((long)var1.y) + (double)((long)var0 * (long)var2.y)) / var8);
  43.       } else {
  44.          var3 = var2;
  45.       }
  46.  
  47.       return var3;
  48.    }
  49.  
  50.    public static Image GrabImage(Image var0, int var1, int var2, int var3, int var4) {
  51.       int[] var5 = new int[var3 * var4];
  52.       var5 = GrabPixels(var0, var1, var2, var3, var4);
  53.       if (var5 != null) {
  54.          ColorModel var6 = ColorModel.getRGBdefault();
  55.          Image var7 = Globals.thePresView.createImage(new MemoryImageSource(var3, var4, var6, var5, 0, var3));
  56.          return var7;
  57.       } else {
  58.          return null;
  59.       }
  60.    }
  61.  
  62.    public static int DrawLine(Graphics var0, String var1, CRect var2, int var3, int var4, int var5, int var6, int var7) {
  63.       int var9 = var2.y + var7 + var4 * var5;
  64.       int var8;
  65.       if ((var3 & 4) != 0) {
  66.          var8 = var2.x + (var2.width - var6);
  67.       } else if ((var3 & 2) != 0) {
  68.          var8 = var2.x + (var2.width - var6) / 2;
  69.       } else {
  70.          var8 = var2.x;
  71.       }
  72.  
  73.       if ((var3 & 32) == 0) {
  74.          var0.drawString(var1, var8, var9);
  75.          var0.setXORMode(var0.getColor());
  76.          var0.fillRect(var2.x, var2.y, 1, 1);
  77.          var0.setPaintMode();
  78.          if ((var3 & 8192) != 0) {
  79.             int var10 = var0.getFontMetrics().getMaxDescent();
  80.             int var11 = Math.max(1, var0.getFont().getSize() / 20);
  81.             if (var0.getFont().isBold()) {
  82.                var11 *= 2;
  83.             }
  84.  
  85.             var0.fillRect(var8, var9 + var10 / 2, var6, var11);
  86.          }
  87.  
  88.          if ((var3 & 'ΦÇÇ') != 0) {
  89.             int var12 = var0.getFontMetrics().getMaxAscent();
  90.             int var13 = Math.max(1, var0.getFont().getSize() / 20);
  91.             if (var0.getFont().isBold()) {
  92.                ++var13;
  93.             }
  94.  
  95.             var0.fillRect(var8, var9 - (var12 / 3 + var13 / 2), var6, var13);
  96.          }
  97.       }
  98.  
  99.       return var8;
  100.    }
  101.  
  102.    public static String MapFont(String var0) {
  103.       new String();
  104.       String var1;
  105.       if (var0.indexOf("Courier") == -1 && var0.indexOf("courier") == -1) {
  106.          if (var0.indexOf("Times") == -1 && var0.indexOf("times") == -1) {
  107.             var1 = "Helvetica";
  108.          } else {
  109.             var1 = "TimesRoman";
  110.          }
  111.       } else {
  112.          var1 = "Courier";
  113.       }
  114.  
  115.       return var1;
  116.    }
  117.  
  118.    public static int StateSet(int var0, int var1) {
  119.       var0 |= var1;
  120.       return var0;
  121.    }
  122.  
  123.    public static void Wait(int var0) {
  124.       try {
  125.          Thread.sleep((long)var0);
  126.       } catch (InterruptedException var1) {
  127.       }
  128.    }
  129.  
  130.    public static String InsertVariablesInString(String var0, boolean var1) {
  131.       CVariable var2 = null;
  132.       String var3 = new String(var0);
  133.       boolean var5 = false;
  134.       if (var1 && var0.indexOf("\\{") != -1 || !var1 && var0.indexOf(123) != -1) {
  135.          if (Globals.CUR_COURSE != null) {
  136.             try {
  137.                var2 = Globals.CUR_COURSE.m_VariableTable.m_VariableList.GetHead();
  138.             } catch (NoSuchElementException var9) {
  139.                var5 = true;
  140.             }
  141.  
  142.             while(!var5) {
  143.                if (var2 != null) {
  144.                   String var4;
  145.                   if (var1) {
  146.                      var4 = new String("\\{" + var2.GetName() + "\\}");
  147.                   } else {
  148.                      var4 = new String("{" + var2.GetName() + "}");
  149.                   }
  150.  
  151.                   var3 = InsertStringInString(var3, var4, var2.GetVariableDataAsString());
  152.                }
  153.  
  154.                try {
  155.                   var2 = Globals.CUR_COURSE.m_VariableTable.m_VariableList.GetNext();
  156.                } catch (NoSuchElementException var8) {
  157.                   var5 = true;
  158.                }
  159.             }
  160.          }
  161.  
  162.          var2 = null;
  163.          var5 = false;
  164.  
  165.          try {
  166.             var2 = Globals.thePresView.m_VariableTable.m_VariableList.GetHead();
  167.          } catch (NoSuchElementException var7) {
  168.             var5 = true;
  169.          }
  170.  
  171.          while(!var5) {
  172.             if (var2 != null) {
  173.                String var11;
  174.                if (var1) {
  175.                   var11 = new String("\\{" + var2.GetName() + "\\}");
  176.                } else {
  177.                   var11 = new String("{" + var2.GetName() + "}");
  178.                }
  179.  
  180.                var3 = InsertStringInString(var3, var11, var2.GetVariableDataAsString());
  181.             }
  182.  
  183.             try {
  184.                var2 = Globals.thePresView.m_VariableTable.m_VariableList.GetNext();
  185.             } catch (NoSuchElementException var6) {
  186.                var5 = true;
  187.             }
  188.          }
  189.       }
  190.  
  191.       return var3;
  192.    }
  193.  
  194.    public static String InsertVariablesInString(String var0) {
  195.       return InsertVariablesInString(var0, false);
  196.    }
  197.  
  198.    public static String GetLine(String var0, int var1) {
  199.       String var2 = null;
  200.       int var5 = 0;
  201.       int var4 = 0;
  202.  
  203.       int var3;
  204.       for(var3 = 0; var5 != var1 && (var4 = var0.indexOf("\r\n", var3)) != -1; ++var5) {
  205.          var3 = var4 + 2;
  206.       }
  207.  
  208.       if (var5 == var1) {
  209.          if ((var4 = var0.indexOf("\r\n", var3)) == -1) {
  210.             var4 = var0.length();
  211.          }
  212.  
  213.          var2 = var0.substring(var3, var4);
  214.       }
  215.  
  216.       return var2;
  217.    }
  218.  
  219.    public static void DrawArrowHead(Graphics var0, Point var1, Point var2, int var3, int var4) {
  220.       int[] var5 = new int[3];
  221.       int[] var6 = new int[3];
  222.       int var7 = var3 * 15;
  223.       double var8 = Math.atan2((double)(var2.y - var1.y), (double)(var2.x - var1.x));
  224.       var5[0] = var1.x;
  225.       var6[0] = var1.y;
  226.       Double var10 = new Double((double)var1.x + (double)var7 * Math.cos(var8 + 0.245));
  227.       var5[1] = var10.intValue();
  228.       var10 = new Double((double)var1.y + (double)var7 * Math.sin(var8 + 0.245));
  229.       var6[1] = var10.intValue();
  230.       var10 = new Double((double)var1.x + (double)var7 * Math.cos(var8 - 0.245));
  231.       var5[2] = var10.intValue() + 1;
  232.       var10 = new Double((double)var1.y + (double)var7 * Math.sin(var8 - 0.245));
  233.       var6[2] = var10.intValue() + 1;
  234.       if (var4 == 1) {
  235.          var0.fillPolygon(var5, var6, 3);
  236.       } else {
  237.          var0.drawLine(var5[0], var6[0], var5[1], var6[1]);
  238.          var0.drawLine(var5[0], var6[0], var5[2], var6[2]);
  239.       }
  240.    }
  241.  
  242.    public static int[] GrabPixels(Image var0, int var1, int var2, int var3, int var4) {
  243.       int[] var5 = new int[var3 * var4];
  244.       PixelGrabber var6 = new PixelGrabber(var0, var1, var2, var3, var4, var5, 0, var3);
  245.  
  246.       try {
  247.          var6.grabPixels();
  248.          return var5;
  249.       } catch (InterruptedException var7) {
  250.          return null;
  251.       }
  252.    }
  253.  
  254.    public static int StateClear(int var0, int var1) {
  255.       var0 ^= var1;
  256.       return var0;
  257.    }
  258.  
  259.    public static Image DrawGradientFill(CRect var0, Color var1, Color var2, int var3) {
  260.       CRect var5 = new CRect(var0);
  261.       float var9 = 1.0F;
  262.       float var11 = (float)var1.getRed();
  263.       float var12 = (float)var1.getGreen();
  264.       float var13 = (float)var1.getBlue();
  265.       float var14 = (float)var2.getRed();
  266.       float var15 = (float)var2.getGreen();
  267.       float var16 = (float)var2.getBlue();
  268.       Image var4 = Globals.thePresView.createImage(var5.width, var5.height);
  269.       Graphics var17 = var4.getGraphics();
  270.       float var10;
  271.       if ((var3 & 16) != 0) {
  272.          var10 = (float)var5.height;
  273.       } else if ((var3 & 32) != 0) {
  274.          var10 = (float)var5.width;
  275.       } else if ((var3 & 64) != 0) {
  276.          var10 = (float)Math.min(var5.width / 2 + 1, var5.height / 2 + 1);
  277.          var9 = Math.max((float)var5.width, (float)var5.height) / Math.min((float)var5.width, (float)var5.height);
  278.       } else {
  279.          var5.x = -var5.width / 4;
  280.          var5.y = -var5.height / 4;
  281.          var5.width += var5.width / 2;
  282.          var5.height += var5.height / 2;
  283.          var10 = (float)Math.min(var5.width / 2 + 1, var5.height / 2 + 1);
  284.          var9 = Math.max((float)var5.width, (float)var5.height) / Math.min((float)var5.width, (float)var5.height);
  285.       }
  286.  
  287.       for(int var18 = 0; (float)var18 < var10; ++var18) {
  288.          int var6 = (int)(var11 + (var14 - var11) / (var10 - 1.0F) * (float)var18);
  289.          int var7 = (int)(var12 + (var15 - var12) / (var10 - 1.0F) * (float)var18);
  290.          int var8 = (int)(var13 + (var16 - var13) / (var10 - 1.0F) * (float)var18);
  291.          Color var19 = new Color(var6, var7, var8);
  292.          var17.setColor(var19);
  293.          if ((var3 & 16) != 0) {
  294.             var17.drawLine(0, var18, var5.width, var18);
  295.          } else if ((var3 & 32) != 0) {
  296.             var17.drawLine(var18, 0, var18, var5.height);
  297.          } else if ((var3 & 64) != 0) {
  298.             if (var5.width > var5.height) {
  299.                var17.fillRect((int)(var9 * (float)var18), var18, var5.width - (int)(2.0F * var9 * (float)var18), var5.height - 2 * var18);
  300.             } else {
  301.                var17.fillRect(var18, (int)(var9 * (float)var18), var5.width - 2 * var18, var5.height - (int)(2.0F * var9 * (float)var18));
  302.             }
  303.          } else if (var5.width > var5.height) {
  304.             var17.fillOval(var5.x + (int)(var9 * (float)var18), var5.y + var18, var5.width - (int)(2.0F * var9 * (float)var18), var5.height - 2 * var18);
  305.          } else {
  306.             var17.fillOval(var5.x + var18, var5.y + (int)(var9 * (float)var18), var5.width - 2 * var18, var5.height - (int)(2.0F * var9 * (float)var18));
  307.          }
  308.       }
  309.  
  310.       return var4;
  311.    }
  312.  
  313.    public static int SetVariables(String var0, boolean var1) {
  314.       int var2 = 0;
  315.       String var3 = InsertVariablesInString(var0);
  316.       if (Globals.CUR_COURSE != null) {
  317.          var2 = Globals.CUR_COURSE.m_VariableTable.SetVariables(var3, var1);
  318.       }
  319.  
  320.       return var2;
  321.    }
  322.  
  323.    public static int GetDistance(Point var0, Point var1) {
  324.       long var2 = (long)Math.abs(var0.x - var1.x);
  325.       long var4 = (long)Math.abs(var0.y - var1.y);
  326.       return (int)Math.sqrt((double)(var2 * var2 + var4 * var4));
  327.    }
  328.  
  329.    public static CVariable SearchAllVariables(int var0) {
  330.       CVariable var1 = null;
  331.       if (Globals.CUR_COURSE != null) {
  332.          var1 = Globals.CUR_COURSE.m_VariableTable.FindVariable(var0);
  333.       }
  334.  
  335.       if (var1 == null) {
  336.          var1 = Globals.thePresView.m_VariableTable.FindVariable(var0);
  337.       }
  338.  
  339.       return var1;
  340.    }
  341.  
  342.    public static CVariable SearchAllVariables(String var0) {
  343.       CVariable var1 = null;
  344.       if (Globals.CUR_COURSE != null) {
  345.          var1 = Globals.CUR_COURSE.m_VariableTable.FindVariable(var0);
  346.       }
  347.  
  348.       if (var1 == null) {
  349.          var1 = Globals.thePresView.m_VariableTable.FindVariable(var0);
  350.       }
  351.  
  352.       return var1;
  353.    }
  354.  
  355.    public static String InsertStringInString(String var0, String var1, String var2) {
  356.       String var3;
  357.       String var4;
  358.       int var6;
  359.       if (var0.length() != 0 && var1.length() != 0 && var0.indexOf(var1.charAt(0)) != -1) {
  360.          for(int var7 = var1.length(); (var6 = var0.indexOf(var1)) != -1; var0 = var3.concat(var2).concat(var4)) {
  361.             int var5 = var0.length();
  362.             if (var6 > 0) {
  363.                var3 = var0.substring(0, var6);
  364.             } else {
  365.                var3 = "";
  366.             }
  367.  
  368.             if (var6 + var7 < var5) {
  369.                var4 = var0.substring(var6 + var7, var5);
  370.             } else {
  371.                var4 = "";
  372.             }
  373.          }
  374.       }
  375.  
  376.       return var0;
  377.    }
  378.  
  379.    public static CRect DrawText(Graphics var0, String var1, CRect var2, int var3) {
  380.       byte var4 = 0;
  381.       byte var5 = 1;
  382.       byte var6 = 2;
  383.       byte var7 = 3;
  384.       byte var8 = 4;
  385.       byte var9 = 5;
  386.       byte var10 = 6;
  387.       String var14 = "";
  388.       CRect var15 = new CRect();
  389.       boolean var16 = false;
  390.       boolean var17 = false;
  391.       boolean var18 = false;
  392.       int var19 = 0;
  393.       int var20 = 0;
  394.       int var21 = 0;
  395.       int var26 = 0;
  396.       Graphics var27 = var0.create();
  397.       var27.clipRect(var2.x, var2.y, var2.width, var2.height);
  398.       var15.x = var2.x + var2.width;
  399.       var15.y = var2.y;
  400.       FontMetrics var11 = var27.getFontMetrics();
  401.       int var25 = var11.charWidth(' ');
  402.       int var22 = var11.getAscent();
  403.       int var23 = var11.getHeight();
  404.       StringTokenizer var12 = new StringTokenizer(var1, " \t\r\n", true);
  405.  
  406.       while(var12.hasMoreTokens() && var19 * var23 <= var2.height) {
  407.          String var13 = var12.nextToken();
  408.          var21 = var11.stringWidth(var13);
  409.          var16 = false;
  410.          byte var24;
  411.          if (var13.equals(" ")) {
  412.             if (var18) {
  413.                if (var17) {
  414.                   var24 = var4;
  415.                } else {
  416.                   var17 = true;
  417.                   var24 = var6;
  418.                   var21 += var25;
  419.                }
  420.             } else {
  421.                var24 = var4;
  422.                var18 = true;
  423.                var17 = false;
  424.                var16 = true;
  425.             }
  426.          } else if (var13.equals("\r")) {
  427.             var24 = var8;
  428.             var16 = true;
  429.          } else if (var13.equals("\n")) {
  430.             if (var20 != 0) {
  431.                var15.width = Math.max(var15.width, Math.min(var20, var2.width));
  432.                var26 = DrawLine(var27, var14, var2, var3, var19, var23, var20, var22);
  433.                var15.x = Math.min(var15.x, Math.max(var26, var2.x));
  434.                var20 = 0;
  435.                var14 = "";
  436.             }
  437.  
  438.             var24 = var9;
  439.             ++var19;
  440.             var16 = true;
  441.          } else if (var13.equals("\t")) {
  442.             var24 = var10;
  443.          } else if (var18) {
  444.             if (var17) {
  445.                var18 = false;
  446.                var24 = var5;
  447.             } else {
  448.                var18 = false;
  449.                var17 = true;
  450.                var24 = var7;
  451.                var21 += var25;
  452.             }
  453.          } else {
  454.             var24 = var5;
  455.          }
  456.  
  457.          while(!var16) {
  458.             if (var20 + var21 <= var2.width) {
  459.                if (var24 != var6 && var24 != var7) {
  460.                   if (var24 == var10) {
  461.                      var13 = "        ";
  462.                   }
  463.                } else if (var20 == 0) {
  464.                   var21 -= var25;
  465.                } else {
  466.                   var13 = " " + var13;
  467.                }
  468.  
  469.                var14 = var14 + var13;
  470.                var20 += var21;
  471.                var16 = true;
  472.             } else {
  473.                if (var20 == 0) {
  474.                   if (var24 == var6 || var24 == var7) {
  475.                      var21 -= var25;
  476.                   }
  477.  
  478.                   var14 = var14 + var13;
  479.                   var20 += var21;
  480.                   var16 = true;
  481.                }
  482.  
  483.                var15.width = Math.max(var15.width, Math.min(var20, var2.width));
  484.                var26 = DrawLine(var27, var14, var2, var3, var19, var23, var20, var22);
  485.                var15.x = Math.min(var15.x, Math.max(var26, var2.x));
  486.                var20 = 0;
  487.                ++var19;
  488.                var14 = "";
  489.             }
  490.          }
  491.       }
  492.  
  493.       if (var20 > 0) {
  494.          var15.width = Math.max(var15.width, Math.min(var20, var2.width));
  495.          var26 = DrawLine(var27, var14, var2, var3, var19, var23, var20, var22);
  496.          var15.x = Math.min(var15.x, Math.max(var26, var2.x));
  497.          var20 = 0;
  498.          ++var19;
  499.          var14 = "";
  500.       }
  501.  
  502.       if ((var3 & 32) != 0) {
  503.          var15.height = var19 * var23;
  504.       }
  505.  
  506.       var19 = 0;
  507.       return var15;
  508.    }
  509.  
  510.    public static boolean CheckExpression(String var0, boolean var1) {
  511.       boolean var2 = false;
  512.       String var3 = InsertVariablesInString(var0);
  513.       if (Globals.CUR_COURSE != null) {
  514.          var2 = Globals.CUR_COURSE.m_VariableTable.CheckExpression(var3, var1);
  515.       }
  516.  
  517.       return var2;
  518.    }
  519. }
  520.